// pages/test/test.js
// 导入 实例
import instance from '../../utils/http'
import { reqSwiperData } from '../../api/index'
import Schema from 'async-validator'

Page({
  data: {
    avatarUrl: '../../assets/images/friend.jpg',
    name: '666'
  },

  onValidator() {
    const rules = {
      name: [
        // required : 是否是必填项
        // name：验证失败，提示的内容
        { required: true, message: 'name 不能为空' },

        // type : 验证数据的类型
        { rype: 'string', message: "name 不是字符串" },

        { min: 2, max: 3, message: "名字最少是2个字，最多是3个字" },

        // pattern: 使用 正则对数据进行验证
        // {pattern:'',message:''},

        // validator: 自定义验证规则
        // {validator:()=>{}}
      ]
    }
    const validator = new Schema(rules)

    validator.validate(this.data,(errors,fields)=>{
      // 验证成功：errors为null
      // 验证失败：errors为 数组，每一线是错误信息

      // fields ： 需要验证的属性，是一个数组，里面也包含错误信息
      
      if(errors){
        console.log('验证失败');

        console.log(errors);

        console.log(fields);
      }else{
        console.log('验证成功');
      }
    })
  },

  async chooseavatar(event) {

    const { avatarUrl } = event.detail
    // console.log(event.detail);
    // wx.uploadFile({
    //   filePath: 'avatarUrl',
    //   name: 'file',
    //   url: 'https://gmall-prod.atguigu.cn/mall-api/fileUpload',

    //   success:(res)=>{
    //    res.data = JSON.parse(res.data)
    //     console.log(res);
    //   }
    // })
    const { data: avatar } = await instance.upload('/fileUpload', avatarUrl, 'file')
    this.setData({
      avatarUrl: avatar
    })
    // console.log(res);

    // this.setData({
    //   avatarUrl
    // })
  },

  // ----------测试request--------------
  async handler() {

    const res = await reqSwiperData()
    console.log(res);

    // 第一种调用方式： .then 
    // instance.request({
    //   url:'/index/findBanner',
    //   method:'GET'
    // })
    // .then(res=> {
    //   console.log(res);
    // }) 

    // 第二种调用方式：await 和 async 
    // await instance.request({
    //   url:'/index/findBanner',
    //   method:'GET'
    // })

    // instance.get('/index/findBanner').then(()=>{
    //   instance.get('/index/findBanner').then(()=>{})
    // })
    // const res = await instance.get('/index/findBanner',null,{isLoading:true})
    // console.log(res);

    // const res = await instance.get('/index/findBanner')
    // const res = await instance.get('/index/findBanner').catch(err => {
    //   console.log(err);
    //   return err
    // } )

    // console.log(res);

  },

  // -----测试get请求实例-------------------------
  handler1() {
    wx.request({
      url: 'https://gmall-prod.atguigu.cn/mall-api/index/findBanner',
      method: 'GET',
      timeout: 100,
      success: (res) => {
        console.log("接口错误");
        console.log(res);
      },
      fail: (err) => {
        // 一般在网络出现异常时（网络超时）才会执行 fail
        // console.log('网络超时');
        console.log(err);
      }
    })

  },

  // ------测试并发请求---------------
  async allHandler() {
    //  await instance.get('/index/findBanner')
    //  await instance.get('/index/findCategory1')
    //  await instance.get('/index/findBanner')
    //  await instance.get('/index/findCategory1')

    // await Promise.all([instance.get('/index/findBanner'),instance.get('/index/findCategory1'),instance.get('/index/findBanner'),instance.get('/index/findCategory1')])

    const res = await instance.all(
      instance.get('/index/findBanner'),
      instance.get('/index/findCategory1'),
      instance.get('/index/findBanner')

    )
    console.log(res);

  }

})